1. Introducing Virtualization
You'll find a lot of
long-winded, technical descriptions for virtualization. But the best way
I can explain it at the introductory level is by providing you with a
scenario. So, for the moment, let's say you work at a company called
UniCom. Within UniCom, a lot of different versions of software are being
used. And, because any good example should be a fun example, let's say
UniCom is a movie studio that specializes in 3D computer graphics.
Within 3D, there is
certainly more than one way to skin a cat—or render a scene, for that
manner. UniCom uses tons of different 3D software clients, such as Alias
Maya, 3DS Studio Max, Lightwave, and even some of the free and
available apps like Blender. At the end of the day, they all can produce
the same result. But the problem is, at the high end, 3D studios often
use CPU-intensive rendering servers in the background to support tasks
that may take a very long time. And not all these computers run the same
rendering software. So here's our ultimate dilemma: not all the
software supports the same version of server software.
In fact, more often than not,
rendering software supports only one specific version of software for
one specific version of the rendering client. And just to throw a last
log on the fire, licensing schemes for these very expensive pieces of
software usually do not allow for upgrades. Why buy one when you can buy
two at twice the price? (If you don't get that joke, go watch the movie
Contact.)
Anyway, this long-winded
explanation is my way of pointing out that many environments have a lot
of technical limitations. 3D graphic artists don't grow on trees, and
anyone who has worked with a good artist will tell you they don't
exactly like the idea of limitations. So, what do you do? Install
multiple servers? Well, let's take a look at what that would be like if
you installed multiple servers. Check out Figure 1.
Say, in that figure, you have twelve different graphic artists, four of
which use 3DS Max, four of which use Alias Maya, and four of which use
Blender. And, for the sake of argument, say that one piece of software
requires Windows 2000 Server, one requires Windows Server 2003, and one
requires Windows Server 2008. We're already up to three servers for
twelve users. That's not exactly efficient.
And so we think, "Well,
what a waste. If only there were another way, we could run all the
clients on the same server." Well, there is. And that process is called consolidation,
which I will talk about in a moment after I talk a little bit more
about the different types of virtualization and what they really are.
2. The Different Types of Virtualization
Windows Server 2008
presents a ton of different possibilities for virtualization, and with
all the different types of virtualization that are available with
Windows Server 2008, it's pretty easy to feel a little lost. It's
sometimes difficult to keep track of what each of the different types of
virtualization actually does. Accordingly, I'll give a brief summary of
some of the principal types of virtualization in the following
sections.
2.1. Presentation Virtualization
Whenever you hear the words presentation virtualization and Windows Server 2008
in the same breath, you should instantly think of one concept: Terminal
Services. The idea of presentation virtualization is that programs
should appear to be running on a client's desktop computer but actually
be operating behind the scenes on a computer separate from the main
server that is doing the real work. The advantage of this is that it
creates a central focus point for all users to operate and allows that
point to be heavily monitored.
2.2. Application Virtualization
Just like presentation
virtualization should make you think of Terminal Services, application
virtualization should instantly make you think of SoftGrid. The idea
behind SoftGrid, and behind application virtualization, is that users
should be able to log on to a server and have that server provide for
them a semblance of a desktop where they can use programs and
applications in a safe, predetermined environment. It's designed as a
method of control and application delivery to facilitate a steady
business flow.
2.3. Desktop Virtualization
Finally, we get into
true operating system virtualization. Using desktop virtualization, an
administrator can run a child operating system at the same time that
they are running a parent operating system. And this isn't purely
limited to Windows. As an example, Figure 2 shows a Mac OS X installation running Windows XP through a virtualized desktop.
2.4. Server Virtualization
Server virtualization is
high-end virtualization. There are two main programs used for this with Windows Server
2008: the Hyper-V server role and Virtual Server 2005 Release 2. With
these two programs, you can run extra server operating systems alongside
your main Windows Server 2008 operating system and save a dramatic
amount of time and money.
NOTE
Server virtualization is also possible through programs such as VMware.
2.5. Virtualization vs. Multitasking
A common
misconception about virtualization is that a virtualized environment is
simply another program, running within the operating system, that uses
an application to emulate an operating system. Although that's easy to
understand and makes a lot of sense, it isn't necessarily true.
When virtualizing an entire
operating system, the way this is accomplished is slightly different.
First, when you're multitasking, your computer's CPU (or CPUs) are going
through the process of allocating the piece of software across your
computer's memory and then accessing the software across that memory in a
very linear fashion. Technically, the computer is reading the memory
from spot 0 to spot X, where along the way it's executing commands that
programs are issuing.
With
virtualization, a virtualized computer will "virtually split" the CPU
into multiple portions. In such a manner, CPU1 will become VirtualCPU1
and VirtualCPU2. And each of these VirtualCPUs will then allocate
themselves completely to the isolated operating system. It's pretty
amazing and very effective. It allows for a computer to view its
processes as completely separated, rather than embedded with application
after application.
3. Introducing Server Consolidation
The Random House Unabridged Dictionary defines consolidate
as "to bring together (separate parts) into a single or unified whole;
unit; [to] combine." So, it's almost self-explanatory that server consolidation is the process of unifying different servers into one. In the example from Figure 1, there are three different servers. Consolidating them into one server would look a lot like what what's shown in Figure 3.
As you can see there, even
though the figure shows only one computer, three different operating
systems are running. And furthermore, different applications are running
within each of those operating systems. Back in the 1980s and 1990s,
this concept was presented at a lot of technical conferences. Most
people, even famous scientists, said they didn't think it would be
possible for the next 20 years. Well, lo and behold, 20 years later—it's
possible. Using virtualization, you can consolidate the work of what
was three operating systems in one centralized location by running one
of the operating systems natively and then virtualizing
the other two operating systems within the first operating system. In
other words, the OS architecture is still in place, but multiple
operating systems and multiple applications are layered on top of it.
Normally, you implement
virtualization by initializing the native install of the most prevalent
(or newest) operating system. In our case (and in the case of the
Windows Server 2008 certification exam), this will almost always be
Windows Server 2008. That's mostly because Windows Server 2008 uses a
new tool called Hyper-V.
3.1. Hyper-V
Hyper-V is a new tool,
available with Windows Server 2008 Standard, Enterprise, and Datacenter
x64-bit builds, that is designed to support individualized
virtualization of different platforms on a single Windows Server 2008
server workstation. The name Hyper-V comes from a technology called a hypervisor,
which is a piece of monitoring software that is designed to track the
status of multiple operating systems that run on a single machine at the
same time and allow them to access system resources without interfering
with one another. Rather than functioning like most normal
applications, which sit on top, Hyper-V runs operating systems natively
as a core part of the OS.
NOTE
Hyper-V requires Windows Server 2008 x64, but it can run 32-bit operating systems within it.
One of the best
practices for using Hyper-V on a server is to install a virtualized
operating system onto a RAID-enabled system. Preferably, this
RAID-enabled system includes redundancy, such as RAID 0 or RAID 5. But
in any case, a virtualized imagine should be placed on a separate volume
from the host system. This is because placing the two operating systems
in the same location can create a lot of complications as the
individual platforms try to read and write data at excessive speeds and
frequency.
3.1.1. Hyper-V Hardware Requirements
One of the unfortunate
side effects of such impressive software is that it has equally
impressive hardware requirements. To effectively use Hyper-V—or rather,
use Hyper-V at all—you must have an x64-compatible computer with a
process that contains one of two technologies: Intel VT or AMD-V. One of
these two features is built into certain product lines of AMD and Intel
processors that support a form of hardware-accelerated virtualization.
According to Intel's website,
Intel VT lets you optimize flexibility and maximize system utilization
by consolidating multiple environments into a single server, allowing
you to perform the same tasks using fewer systems. Therefore, it does
the following:
Simplifies resource management
Increases IT efficiency
Decreases disaster recovery time
Improves systems reliability and availability
Reduces corporate risk and real-time losses from downtime
Lowers hardware acquisition costs because you can make increased use of existing machines
You can find a complete
explanation of Intel VT and AMD-V technology on their respective
websites, currently available at the following locations:
www.intel.com/technology/virtualization/
www.amd.com/us-en/Processors/ProductInformation/0,,30_118_8796_14287,00.html
Each of these
websites provides a great deal of documentation regarding the
hardware-specific portions of onboard virtualization in hardware
devices. But what's important to remember is that in both of these
technologies, virtualization is disabled by default. This is for good
reason. Enabling onboard virtualization greatly magnifies your potential
to receive a possibly crippling virus. If you've ever heard of a
rootkit, you can just imagine the granddaddy of all rootkit viruses—the
hardware virtualization-based rootkit. If present, it can metaphorically
rock your world, and not in a way you might enjoy.
Lastly, Hyper-V requires
that data execution prevention be available and enabled. This means you
need to enable the Intel XD bit or the AMD NX bit.
NOTE
Although it might be cool in a
very "hardcore geek" sort of way, it is impossible to run Hyper-V
inside another virtualized environment, such as VMware. This is because
Hyper-V requires direct access to the hardware virtualization
technology, which isn't available when running in a virtualized
environment.
3.1.2. Hyper-V Limits
When you are planning your
deployment of Hyper-V, you should keep in mind that Hyper-V has some
practical limitations that should suffice for all but the most demanding
user, as shown in Table 1.
Table 1. Hyper-V Limits
Component | Limitation |
---|
Processor | 16 or fewer logical processors |
Memory | 64GB per virtual machine, 1TB maximum |
Network | 12 network adapters |
Hard disks | Virtual drives up to 2040GB (2TB) |
Virtual optical drives | Up to 3 DVD drives |
Virtual COM ports | 2 virtual COM ports |
Virtual floppy drive | 1 virtual floppy drive |
3.1.3. Supported Guest Operating Systems with Windows Server 2008 Hyper-V
You can run these editions of Windows Server 2008 with 32- and 64-bit Windows Server 2008 virtual machines:
Windows Server 2008 Standard and Windows Server 2008 Standard without Hyper-V
Windows Server 2008 Enterprise and Windows Server 2008 Enterprise without Hyper-V
Windows Server 2008 Datacenter and Windows Server 2008 Datacenter without Hyper-V
Windows Web Server 2008
Windows Server 2008 HPC edition
You can run the following editions of Windows Server 2003 with up to two virtual processors:
Windows Server 2003 R2 Standard edition with Service Pack 2
Windows Server 2003 R2 Enterprise edition with Service Pack 2
Windows Server 2003 R2 Datacenter edition with Service Pack 2
Windows Server 2003 Standard edition with Service Pack 2
Windows Server 2003 Enterprise edition with Service Pack 2
Windows Server 2003 Datacenter edition with Service Pack 2
Windows Server 2003 Web edition with Service Pack 2
Windows Server 2003 R2 Standard x64 edition with Service Pack 2
Windows Server 2003 R2 Enterprise x64 edition with Service Pack 2
Windows Server 2003 R2 Datacenter x64 edition with Service Pack 2
Windows Server 2003 Standard x64 edition with Service Pack 2
Windows Server 2003 Enterprise x64 edition with Service Pack 2
Windows Server 2003 Datacenter x64 edition with Service Pack 2
You can run the following versions of Windows 2000 on a virtual machine configured with one virtual processor:
You can run the following Linux distributions on a virtual machine configured with one virtual processor:
SUSE Linux Enterprise Server 10 with Service Pack 2 (x86 edition)
SUSE Linux Enterprise Server 10 with Service Pack 2 (x64 edition)
SUSE Linux Enterprise Server 10 with Service Pack 1 (x86 edition)
SUSE Linux Enterprise Server 10 with Service Pack 1 (x64 edition)
You can run the following
32-bit and 64-bit versions of Windows Vista on a virtual machine
configured with up to two virtual processors:
Windows Vista Business with Service Pack 1
Windows Vista Enterprise with Service Pack 1
Windows Vista Ultimate with Service Pack 1
You can run the following versions of Windows XP on a virtual machine:
Windows XP Professional with Service Pack 3 (configured with one or two virtual processors)
Windows XP Professional with Service Pack 2 (configured with one virtual processor)
Windows XP Professional x64 Edition with Service Pack 2 (configured with one or two virtual processors)